package com.niiwoo.activity.stage.service.channel;

import com.niiwoo.activity.stage.dto.request.channel.*;
import com.niiwoo.activity.stage.dto.response.channel.*;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;

import java.util.List;

//import sun.invoke.empty.Empty;

/**
 * 引流渠道doubbo
 */
public interface DraingeChannelDubboService {

    /**
     * 分页列表查询
     * @param reqDTO
     * @return
     */
    public PageResponseDTO<DraingeChannelQueryPageRespDTO> queryList(DraingeChannelQueryPageReqDTO reqDTO);

    /**
     * 引流渠道详情查询
     * @param reqDTO
     * @return
     */
    public DraingeChannelQueryRespDTO queryDetails(DraingeChannelDetailReqDTO reqDTO);

    /**
     * 编辑引流渠道
     * @param reqDTO
     * @return
     */
    public void edit(DraingeChannelEidtReqDTO reqDTO);

    /**
     * 新增引流渠道
     * @param reqDTO
     */
    public Long add(DraingeChannelAddReqDTO reqDTO );

    /**
     * 查询渠道链接信息
     *
     * @return
     */
    public ChannelLinkRespDTO queryChannelLink(ChannelLinkQueryReqDTO reqDTO);

    /**
     * 新增/编辑渠道链接
     * @param reqDTO
     */
    public ChannelLinkSaveRespDTO saveChannelLink(ChannelLinkSaveReqDTO reqDTO);

    /**
     * 删除渠道链接
     * @param id
     */
    public void delChannelLink(Long id);

    /**
     *根据渠道ID查询渠道链接信息
     * @return
     */
    public List<ChannelLinkRespDTO> queryChannelLinks(ChannelLinkPicReqDTO reqDTO);

    /**
     * 新增引流用户信息
     * @param reqDTO
     */
    public void addDraingeChannelUse(DraingeChannelUseAddReqDTO reqDTO);

    /**
     * 更新引流用户信息（首次登陆）
     * @param reqDTO
     */
    public void editDraingeChannelUse(DraingeChannelUseAddReqDTO reqDTO);

    /**
     * 投资借款默认banner背景图
     * @return
     */
    public BannerImageRespDTO getBannerImage();

    /**
     * 保存投资借款默认banner背景图
     * @param reqDTO
     */
    public void saveBannerImage(BannerImageSaveReqDTO reqDTO);

    /**
     * 根据用户ID查询渠道信息
     * @param userId
     * @return
     */
    public DraingeChannelQueryRespDTO selectByUserId(String userId);

    /**
     * 查询有效的渠道
     */
    public List<ValidDraingeChannelDTO> queryValidDraingeChannel();
}
